<?php

/**
 * Description of TSqlInsertclass
 *
 * @author Saulo
 */
final class TSqlInsert extends TSqlInstruction {
       /*metodo setRowData()
        * atribui valores à determinadas colunas no banco de dados que serão inseridas
        * @param $colum = coluna da tabela
        * @param $value = valor
        */
    public function setRowData($column, $value)
    {
        if(is_string($value))
        {
            $value = addslashes($value);
            //caso seja uma string
            $this->columnValues[$column] = "'$value'";
        }
        else if(is_bool($value))
        {
            $this->columnValues[$column] = $value ? 'TRUE':'FALSE';
        }
        else if(isset($value))
        {
            $this->columnValues[$column] = $value;
        }else{
            //caso seja NUll
            $this->columnValues[$column] = "NULL";
        }
    }
    /*método setCriteria()
     * não existe no context desta classe, logo irá lançar um erro
     */
    public function setCriteria($criteria){
        throw new Exception("Não pode chamar o método setCriteria da classe ".__CLASS__);
    }
    public function getInstruction()
    {
        $this->sql = "INSERT INTO {$this->entity} ( ";
        //monta uma string contendo os nomes e colunas
        $columns = implode(", ", array_keys($this->columnValues));
        //monta uma string contendo os valores
        $value = implode(', ', array_values($this->columnValues));
        $this->sql .= $columns . ')';
        $this->sql .= " VALUES ({$value})";
       return utf8_decode($this->sql);
    }
}
?>
